
#pragma once

#include "ICond.h"

class CondD : public ICond
{
public:
	CondD();
	~CondD();
//////////////////////////// ICond //////////////////////////////////////////////
	virtual int8_t getCondType() { return (int8_t)EDupCondType::EDupCondType_D; };
	virtual bool init(IDuplicate *pDuplicate, const VEC_INT32 *pCond, const string &strSubCond);
	virtual void uninit();
	virtual void condUpdate();
	virtual bool finishCond();
	virtual int32_t result();
	virtual int32_t limitSec();
	virtual uint32_t transAreeId();
	virtual void onTransNum(uint32_t monsId, uint32_t num,int8_t parentType);
	virtual int32_t getTransNum();
private:
	int32_t checkCond();
	void notifyTransNum();
private:
	IDuplicate *m_pDuplicate;
	const VEC_INT32 *m_pVecCond;
	int32_t m_result;
	bool m_finish;
	int32_t m_limitSec;
	uint32_t m_transArea;
	int32_t m_targetNum;
	MAP_UINT32_INT32 m_mapTransBoss; //boss序列
	int32_t m_transNum; //已传送的数量
	SET_INT32 m_setType;
};